Not applicable.
Not applicable.
1. Field of the Invention
The present invention relates to a computer system having reset capabilities and more specifically to saving a particular state upon application of a reset during a wake up from a reduced power consumption state.
2. Description of the Related Art
The popularity of notebook computers and similar mobile devices that rely on battery provided power has led to the ever-increasing concern to maximize battery life. To meet this challenge, a number of power management protocols have been developed for various PC platforms. Among the most popular of these platforms is the PCI local bus. Since its introduction in 1993, PCI has gained wide acceptance in the mobile computer environment. The PCI local bus supports power management functionality. This is done in part by defining four distinct power states and by providing an interface for controlling these states. These states define distinct power saving levels, ranging from normal power operation to deep sleep operation. The PCI power management interface provides power status reporting, sets the power states, and performs system wake up calls.
A PCI device or more correctly, a PCI function within that device can request a change of its power consumption state by generating a power management event (PME). This PME is represented by a PME signal, asserted by the device. The PME signal will request either a change from a power saving state, or sleep state, to a fully operational state or vise versa. A device function also generates what is called a function context. The function context includes not only the status of the function but also all the information that is required to perform that function. For example, the PME context includes all the functional state information and logic required to generate power management events, report PME status and enable PMEs. Therefore, under the PCI power management protocol, a device may request a change in a power consumption state by issuing a PME signal. When a device""s PCI function generates or detects an event that requires the system to change its power state, the function will assert a PME signal.
Some devices that are powered by a battery or some other external power source may use a PME signal even when powered off. Such devices, however, have the added requirement of maintaining the value of the status of the PME context. Specifically, the PCI local bus requirement states that PME context must be preserved over a power cycle and the associated power on reset. In this way, many of the bits associated with the PME context are defined to be sticky bits, in that their states are not affected by the power on reset or transition from a low power consumption to a higher power consumption state. This is because the device function""s PME functionality itself may have been responsible for the wake event that caused the transition to the different power consumption state. In this way, the PME context must be preserved for the system software to process. Thus, traditionally, prior knowledge of the state of the PME was required to ensure a request or detection was reliable. This was generally accomplished either by applying a battery back up to the device or saving the PME context in a non-volatile device.
Upon a change to a different power consumption state, a reset signal is applied to the device to initialize selected signals and registers. The reset signal is used to bring PCI-specific registers, including the PME context, to a consistent state after an indeterminate period, during which signals may have been erroneously altered. Specifically, during an exit from a sleep state, the application of power to a device may alter the status of the PME context. However, in the traditional system, the PME context will have been saved in non-volatile memory or have been directly backed up by a battery. This saved PME context is then compared to the present state of the PME context to determine if unwanted alterations have occurred. In either case, the prior state of the PME context is required to ensure subsequent system operation.
The present invention provides a computer system capable of protecting context or settings during a power up reset sequence. This is done without the need to save them in ROM or other static memory device. The event signals, representing the context or settings, are provided to a device which delays the timing of the event signal for a specified time. The delayed event signal and a power on reset signal are compared to determine whether the context or settings are reliable. If reliable the context or settings are protected from the reset signal, saving their present state. If determined to be suspect or unreliable, the reset signal is applied to initialize the context or settings.
A delay circuit in the computer system creates a time lag in the event signal. Because the reset signal is asserted a minimum time from a power on sequence, the delayed event signal corresponds to the reset signal if the event signal was the errant result of the power on sequence. However, if the event signal was set prior to the application of power, the delay will have been negotiated prior to the assertion of the reset signal. Therefore two paths are provided for a power on reset signal. One path, when the event signal and the reset signal correspond, causes the context or settings to be initialized or cleared by the reset signal. The second path, where the event signal was set prior to the application of power, allows the reset signal to bypass the context or settings, thereby saving their present state.
In this way, reliability of the settings or context information is determined without prior knowledge of their state. Furthermore, the present settings or context information is saved, when reliable, without the use of external memory or battery backups.